Technical Field
Embodiments of the present invention generally relate to link management. More particularly, embodiments relate to dynamic modulation of link widths.
Discussion
Modern day computer systems are made up of many components that communicate with one another for various reasons. For example, in multi-processor systems, one processor may access the memory of another processor in order to retrieve data that is required locally, and vice versa. In another example, a processor may communicate with a chipset in order to exchange data with an input/output (I/O) device coupled to an I/O hub of the chipset.
The links that interconnect computer components provide a mechanism for transferring data and each point-to-point link is typically made up of a plurality of “lanes”, where each lane can transfer a bit of data in a given cycle. The number of lanes to be used during communication defines the link width, which effectively controls the bandwidth of the link. Simply put, wider links provide a larger bandwidth than narrower links. On the other hand, wider links tend to consume more power because of the additional circuitry necessary to support the additional lanes. The link width is typically negotiated during a lengthy initialization process and is relatively static once set under conventional approaches. While these approaches have been suitable under certain circumstances, there still remains considerable room for improvement.
In particular, it has been determined that the operating conditions of components often vary over time and that bandwidth requirements can vary in kind. For example, a processor may transition from running a thread that requires a relatively large amount of bandwidth for a link to running a thread that requires a relatively small amount of bandwidth for the link. The link width, however, typically does not change under conventional techniques because the initialization process is so complex and time consuming. As a result, the link may be wider than necessary.